package com.zx.JDK特性.jdk1_8.date;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

/**
 * LocalDateTime(推荐使用)是一个不可变的日期-时间对象，它既包含了日期同时又含有时间，默认格式是yyyy-MM-ddTHH-mm-ss.zzz
 */
public class LocalDateTimeDemo {

    public static void main(String[] args) {
        // 1. 获取当前日期时间以及自定义日期时间
        //获取当前的日期时间
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println("当前的日期时间：" + localDateTime);

        //获取自定义的的日期时间
        LocalDateTime specifiedDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.now());
        System.out.println("自定义的日期时间：" + specifiedDateTime);

        // 2. 转化为日期和时间
        //转化为LocalDate和LocalTime
        LocalDate localDate = localDateTime.toLocalDate();
        LocalTime localTime = localDateTime.toLocalTime();
        System.out.println("当前日期：" + localDate);
        System.out.println("当前时间：" + localTime);

        // 3. 时间类型装换
        LocalDateTime time = LocalDateTime.now();
        // 常用方法1
        LocalDateTime of1 = LocalDateTime.of(time.getYear(), time.getMonth(), time.getDayOfMonth(), time.getHour(),
                time.getMinute());

        // 常用方法2
        LocalDateTime of2 = LocalDateTime.of(time.getYear(), time.getMonth(), time.getDayOfMonth(), time.getHour(),
                time.getMinute(), time.getSecond());

        // str --> date
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime date = LocalDateTime.parse("2019-02-15 15:15:01", df);
        System.out.println(date);

        // date --> str
        String str = df.format(time);
        System.out.println(str);

    }
}
